[PATCH] Correctly handle signed 32-bit time_t types
authorNoah Meyerhans <noahm@debian.org>
Tue, 14 Apr 2026 19:36:12 +0000 (15:36 -0400)
committerNoah Meyerhans <noahm@debian.org>
Tue, 14 Apr 2026 19:36:12 +0000 (15:36 -0400)
commitdacc91f131a29ce836f7e46fdc4fb6d55416cd23
treebefdf5546ef6e853b67704b7a4b54b6f9ddadab0
parentca7ef2b4ec14f3e2254678b396afe2157603ce7d
[PATCH] Correctly handle signed 32-bit time_t types

Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1124541
Forwarded: no

dovecot handles 32-bit time_t in a couple of different ways, but neither quite
works currently.  Setting TIME_T_MAX_BITS to 31 isn't correctly handled in
places where time_t values are constructed, for example in
io_loop_get_wait_time().

Similarly, setting TIME_T_MAX_BITS = 32 and defining TIME_T_SIGNED is not
correctly handled by tm_is_too_large().

This change fixes tm_is_too_large() to set max_time to the correct maximum date
representable by a signed 32-bit time_t.

Closes: #1124541
Gbp-Pq: Name Correctly_handle_signed_32-bit_time_t_types.patch
src/lib-imap/imap-date.c
src/lib-imap/test-imap-date.c